Phonon 是 KDE 桌面平台提供的多媒體 API,它是處理KDE軟件中多媒體流的標準抽象,也被幾個Qt應用程序使用。

Quick Facts 開發者, 當前版本 ...
Phonon
Thumb
開發者Matthias Kretz u.a.
當前版本4.10.3(2019年7月19日,​5年前​(2019-07-19
源代碼庫 編輯維基數據鏈接
編程語言C++
操作系統LinuxBSDMac OS XSolarisWindows
類型多媒體框架
許可協議LGPL
網站phonon.kde.org
Close

Phonon 最初是為了讓 KDE/Qt 軟件能夠獨立於任何單一的多媒體框架(如GStreamerxine),從而為其提供了在主要版本的生命周期內穩定的多媒體API。通過提供一個簡單的 KDE/Qt 風格的多媒體API,能夠更好地支持 Windows 和 macOS 上的本地多媒體框架,並解決框架變得無法維護或 API/ABI 不穩定的問題。

使用了phonon,用四行C++程式碼就能播放檔案[1] ,而舊聲音框架(aRts英語aRts)則需要用到30行[2]

 media = new MediaObject(this);
 connect(media, SIGNAL(finished()), SLOT(slotFinished()));
 media->setCurrentSource("/home/username/music/filename.ogg");
 media->play();

Phonon並非只能運行於Unix系統,他的後端可以是在其它平台如 Microsoft Windows 並提供相同的功能。

Thumb
早期的 Phonon 設定管理員截圖

特色

  • Phonon讓各種後端提供界面給開發者所謂的"引擎";每個引擎運作在一個具體的後端。每個後端都可讓Phonon控制基本功能,如播放、暫停和搜尋。Phonon也支持更高層次的功能,如讓音軌轉化之間變微弱。[3]
  • 使用Solid,Phonon將給予用戶更多配件的控制能力如耳機、揚聲器、麥克風。一個例子是,因為你可能只有一個VoIP會話使用您的耳機,但所有其他的聲音通過揚聲器出來。[3]
  • 支援 Unix-like 系統下的後端GStreamer與VLC。[4]需要注意的是,xineMPlayer的後端在 Linux 中已經過時並不再提供開發。[5]

使用於 Qt

Phonon從一開始就被設計成Qt函數的風格,Qt4.4和之後版本使用了Phonon,作為跨平台的音訊/視訊播放。[6]

示例

    Phonon::VideoPlayer *player=new Phonon::VideoPlayer(this);
    player->setMinimumSize(1280,720);
    Phonon::MediaSource source("20110705_095213.avi");
    player->load(source);
    player->play();
    connect(player,SIGNAL(finished()),player,SLOT(play()));

參考文獻

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.